package com.dms.modules.user.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.dms.modules.user.dto.AddressDTO;
import com.dms.modules.user.entity.UserAddress;
import com.dms.modules.user.vo.AddressVO;

import java.util.List;

/**
 * 用户收货地址服务接口
 */
public interface UserAddressService extends IService<UserAddress> {
    
    /**
     * 获取用户地址列表
     * @param userId 用户ID
     * @return 地址列表
     */
    List<AddressVO> getAddressList(Long userId);
    
    /**
     * 获取地址详情
     * @param userId 用户ID
     * @param addressId 地址ID
     * @return 地址详情
     */
    AddressVO getAddressDetail(Long userId, Long addressId);
    
    /**
     * 添加地址
     * @param userId 用户ID
     * @param addressDTO 地址信息
     * @return 地址ID
     */
    Long addAddress(Long userId, AddressDTO addressDTO);
    
    /**
     * 修改地址
     * @param userId 用户ID
     * @param addressId 地址ID
     * @param addressDTO 地址信息
     */
    void updateAddress(Long userId, Long addressId, AddressDTO addressDTO);
    
    /**
     * 删除地址
     * @param userId 用户ID
     * @param addressId 地址ID
     */
    void deleteAddress(Long userId, Long addressId);
    
    /**
     * 设置默认地址
     * @param userId 用户ID
     * @param addressId 地址ID
     */
    void setDefaultAddress(Long userId, Long addressId);
    
    /**
     * 获取默认地址
     * @param userId 用户ID
     * @return 默认地址
     */
    AddressVO getDefaultAddress(Long userId);

    /**
     * 获取地址详情
     * @param id 地址ID
     * @return 地址详情
     */
    UserAddress getAddressById(Long id);
} 